/**
 * 
 */
package com.pub.image;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.security.NoSuchAlgorithmException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.imageio.stream.ImageOutputStream;

//import magick.CompositeOperator;
//import magick.CompressionType;
//import magick.DrawInfo;
//import magick.ImageInfo;
//import magick.MagickException;
//import magick.MagickImage;
//import magick.PixelPacket;
//import magick.PreviewType;
//
//import com.gif4j.GifDecoder;
//import com.gif4j.GifEncoder;
//import com.gif4j.GifImage;
//import com.gif4j.GifTransformer;
//import com.pub.util.SecurityUtils;
//
/**
 * @author Administrator
 *
 */
public class ImageZoom 
{
	private static String TMP_DIR;
	
	private String fileMD5;
	
	private String checkNumber;
	
	private String imageFormat;
	
	
	
	static
	{
	    System.setProperty("jmagick.systemclassloader","no");
	}
	
	/**
	 * 
	 */
	public ImageZoom() 
	{
	}

//	/**
//	 * @param args
//	 */
//	public static void main(String[] args) 
//	{
//		String imgPath = "C:\\images\\bg.jpg";
//		String toPath = "C:\\images\\bg1.jpg";
//		try {
//			ImageZoom.cutImg(imgPath, toPath, 200, 200, 50, 200);
//			toPath = "C:\\images\\bg2.jpg";
//			ImageZoom.zoomImg(imgPath, toPath, 400, 300);
//			  
//			toPath = "C:\\images\\bg3.jpg";
//			String text = "ff";
//			ImageZoom.initTextToImg(imgPath, toPath, text);
//		} catch (Exception e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
//		   
//
//	}
//
//	public String getImageFormat()
//	{
//		return imageFormat;
//	}
//	
//	public String getImageCode()
//	{
//		return checkNumber;
//	}
//	
//	public void setTmpDIR(String tmpDIR)
//	{
//		TMP_DIR = tmpDIR;
//	}
//	
//	public String getMD5()
//	{
//		return fileMD5;
//	}
//	
//	public synchronized byte[] getZoom(String imgPath, int w, int h, String markText) throws MagickException, IOException, NoSuchAlgorithmException
//	{
//		File fiTMP = new File(imgPath);
//    	if(fiTMP.exists()){
//    		if(!fiTMP.isFile()){
//    			throw new FileNotFoundException(imgPath);
//    		}
//    	}else{
//    		throw new FileNotFoundException(imgPath);
//    	}
//		
//		if(w <= 0 || h <= 0){// if width or height is 0, return original image.
//			ImageInfo info 		= new ImageInfo(imgPath);
//		    MagickImage image 	= new MagickImage(info);
//		    
//		    imageFormat 	= image.getImageFormat();
//		    
//		    byte[] btReturn = image.imageToBlob(info);
//	    	
//		    image.destroyImages();
//		    
//	    	return btReturn;
//		}
//		
//		ImageInfo info 		= new ImageInfo(imgPath);
//	    MagickImage image 	= new MagickImage(info);
//	    
//	    this.imageFormat 	= image.getImageFormat();
//	   
//	    if(image.isAnimatedImage()){
//	    	return zoomGif(image, w, h, markText);
//	    }else{
//	    	return zoomJPG(image, w, h, markText);
//	    }
//	}
//	
//	public byte[] getZoom(String imgPath, int w, int h, boolean smooth, String markText) throws MagickException, IOException, NoSuchAlgorithmException
//	{
//		File fiTMP = new File(imgPath);
//    	if(fiTMP.exists()){
//    		if(!fiTMP.isFile()){
//    			throw new FileNotFoundException(imgPath);
//    		}
//    	}else{
//    		throw new FileNotFoundException(imgPath);
//    	}
//		
//		if(w <= 0 || h <= 0){// if width or height is 0, return original image.
//			ImageInfo info 		= new ImageInfo(imgPath);
//		    MagickImage image 	= new MagickImage(info);
//		    
//		    imageFormat 	= image.getImageFormat();
//		    
//		    byte[] btReturn = image.imageToBlob(info);
//	    	
//		    image.destroyImages();
//		    
//	    	return btReturn;
//		}
//		
//		ImageInfo info 		= new ImageInfo(imgPath);
//	    MagickImage image 	= new MagickImage(info);
//	    
//	    this.imageFormat 	= image.getImageFormat();
//	   
//	    if(image.isAnimatedImage()){
//	    	return zoomScaleGifByGif4j(fiTMP, w, h, smooth, markText);
//	    }else{
//	    	return zoomJPG(image, w, h, markText);
//	    }
//	}
//	
//	public InputStream getZoom2(String imgPath, int w, int h, String markText) throws MagickException, IOException
//	{
//		File fiTMP = new File(imgPath);
//    	if(fiTMP.exists()){
//    		if(!fiTMP.isFile()){
//    			throw new FileNotFoundException(imgPath);
//    		}
//    	}else{
//    		throw new FileNotFoundException(imgPath);
//    	}
//		
//		if(w <= 0 || h <= 0){// if width or height is 0, return original image.
//			InputStream isReturn = null;
//			
//			ImageInfo info 		= new ImageInfo(imgPath);
//		    MagickImage image 	= new MagickImage(info);
//		    this.imageFormat 	= image.getImageFormat();
//		    image.destroyImages();
//		    
//	    	isReturn = new FileInputStream(imgPath);
//
//	    	return isReturn;
//		}
//		
//		ImageInfo info 		= new ImageInfo(imgPath);
//	    MagickImage image 	= new MagickImage(info);
//	    
//	    this.imageFormat 	= image.getImageFormat();
//	   
//	    if(image.isAnimatedImage()){
//	    	return zoomGif2(image, w, h, markText);
//	    }else{
//	    	return zoomJPG2(image, w, h, markText);
//	    }
//	}
//	
//	public String zoom(String imgPath, String toPath, int w, int h) throws MagickException
//	{
//		ImageInfo info 		= new ImageInfo(imgPath);
//	    MagickImage image 	= new MagickImage(info);
//	    if(image.isAnimatedImage()){
//	    	System.out.println("is gif getIterations :" + image.getIterations());
//	    	System.out.println("is gif getDelay :" + image.getDelay());
//	    	System.out.println("is gif getDispose :" + image.getDispose());
//	    	
//	    	int Width, Height, newWidth, newHeight;
//	    	
//	    	Dimension imageDim = image.getDimension();
//	    	
//	    	System.out.println("w1 =" + imageDim.width);
//	    	System.out.println("h1 =" + imageDim.height);
//	    	
//	    	float scale;
//	    	if(imageDim.width < w && imageDim.height < h){
//				if((float)w / (float)imageDim.width  > (float)h / (float)imageDim.height){
//					newHeight = h;
//					newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//					
//					scale = (float)newHeight / (float)imageDim.height;
//				}else{
//					newWidth  = w;
//					newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//					
//					scale = (float)newWidth / (float)imageDim.width;
//				}
//			}else{
//				float floOldRate = imageDim.width / imageDim.height;
//				float floNewRate = w / h;
//				if(floOldRate > floNewRate){
//					newWidth  = w;
//					newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//					
//					scale = (float)newWidth / (float)imageDim.width;
//				}else{
//					newHeight = h;
//					newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//					
//					scale = (float)newHeight / (float)imageDim.height;
//				}
//			}
//	    	
//	    	System.out.println("scale =" + scale);
//	    	System.out.println("w =" + imageDim.width);
//	    	System.out.println("h =" + imageDim.height);
//    		
//	    	
//	    	MagickImage[] mi = image.breakFrames();
//	    	MagickImage images[] = new MagickImage[mi.length];
//	    	for ( int I=0; I < mi.length ; I++ )
//	    	{
//	    		imageDim = mi[I].getDimension();
//	    		
//	    		Width = Math.round((float)imageDim.width * scale);
//		    	Height = Math.round((float)imageDim.height * scale);
//	    		
//	    		images[I] = mi[I].scaleImage(Width, Height);
//	    	}
//	    	
//	    	MagickImage  Animation = new MagickImage(images);
//	    	ImageInfo bidon = new ImageInfo();
//	    	Animation.setImageAttribute( "Dispose","1" );
//	    	Animation.setImageAttribute( "Delay","5" );
//	    	Animation.setIterations(0);
//	    	Animation.setFileName(toPath);
//	    	Animation.writeImage(bidon);
//	    }
//	    
//	    return image.getImageFormat();
//	}
//    
//	public byte[] zoom(String imgPath, int w, int h) throws MagickException
//	{
//		byte[] btReturn = null;
//		
//		ImageInfo info 		= new ImageInfo(imgPath);
//	    MagickImage image 	= new MagickImage(info);
//	    if(image.isAnimatedImage()){
//	    	System.out.println("is gif getIterations :" + image.getIterations());
//	    	System.out.println("is gif getDelay :" + image.getDelay());
//	    	System.out.println("is gif getDispose :" + image.getDispose());
//	    	
//	    	int Width, Height, newWidth, newHeight;
//	    	
//	    	Dimension imageDim = image.getDimension();
//	    	
//	    	System.out.println("w1 =" + imageDim.width);
//	    	System.out.println("h1 =" + imageDim.height);
//	    	
//	    	float scale;
//	    	if(imageDim.width < w && imageDim.height < h){
//				if((float)w / (float)imageDim.width  > (float)h / (float)imageDim.height){
//					newHeight = h;
//					newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//					
//					scale = (float)newHeight / (float)imageDim.height;
//				}else{
//					newWidth  = w;
//					newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//					
//					scale = (float)newWidth / (float)imageDim.width;
//				}
//			}else{
//				float floOldRate = imageDim.width / imageDim.height;
//				float floNewRate = w / h;
//				if(floOldRate > floNewRate){
//					newWidth  = w;
//					newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//					
//					scale = (float)newWidth / (float)imageDim.width;
//				}else{
//					newHeight = h;
//					newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//					
//					scale = (float)newHeight / (float)imageDim.height;
//				}
//			}
//	    	
//	    	System.out.println("scale =" + scale);
//	    	System.out.println("w =" + imageDim.width);
//	    	System.out.println("h =" + imageDim.height);
//    		
//	    	
//	    	MagickImage[] mi = image.breakFrames();
//	    	MagickImage images[] = new MagickImage[mi.length];
//	    	for ( int I=0; I < mi.length ; I++ )
//	    	{
//	    		imageDim = mi[I].getDimension();
//	    		
//	    		Width = Math.round((float)imageDim.width * scale);
//		    	Height = Math.round((float)imageDim.height * scale);
//	    		
//	    		images[I] = mi[I].scaleImage(Width, Height);
//	    	}
//	    	
//	    	MagickImage  Animation = new MagickImage(images);
//	    	ImageInfo bidon = new ImageInfo();
//	    	Animation.setImageAttribute( "Dispose","1" );
//	    	Animation.setImageAttribute( "Delay","5" );
//	    	Animation.setIterations(0);
//	    	//Animation.setFileName("D:/workspace/InternalManager/WebContent/386.gif");
//	    	//Animation.writeImage(bidon);
//	    	
//	    	//ImageInfo bidon = new ImageInfo();
//	    	//Animation.setImageFormat("gif");
//	    	btReturn = Animation.imageToBlob(bidon);
//	    }
//	    
//	    return btReturn;
//	}
//	
//	public InputStream zoomGif2(MagickImage image, int w, int h, String markText) throws MagickException, IOException
//	{
//		InputStream isReturn = null;
//		
//	    if(image.isAnimatedImage()){
//	    	int Width, Height, newWidth, newHeight;
//	    	
//	    	Dimension imageDim = image.getDimension();
//	    	
//	    	float scale;
//	    	if(imageDim.width < w && imageDim.height < h){
//				if((float)w / (float)imageDim.width  > (float)h / (float)imageDim.height){
//					newHeight = h;
//					newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//					
//					scale = (float)newHeight / (float)imageDim.height;
//				}else{
//					newWidth  = w;
//					newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//					
//					scale = (float)newWidth / (float)imageDim.width;
//				}
//			}else{
//				float floOldRate = (float)imageDim.width / (float)imageDim.height;
//				float floNewRate = (float)w / (float)h;
//				
//				if(floOldRate > floNewRate){
//					newWidth  = w;
//					newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//					
//					scale = (float)newWidth / (float)imageDim.width;
//				}else{
//					newHeight = h;
//					newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//					
//					scale = (float)newHeight / (float)imageDim.height;
//				}
//			}
//	    	ImageInfo bidon 		= new ImageInfo();
//	    	MagickImage[] mi = image.breakFrames();
//	    	MagickImage images[] = new MagickImage[mi.length];
//	    	for ( int I=0; I < mi.length ; I++ )
//	    	{
//	    		imageDim = mi[I].getDimension();
//	    		
//	    		Width = Math.round((float)imageDim.width * scale);
//		    	Height = Math.round((float)imageDim.height * scale);
//	    		
//	    		images[I] = mi[I].scaleImage(Width, Height);
//	    		
//	    		if(markText != null && markText.length() > 0)
//	    		markText(images[I], bidon, markText);
//	    	}
//	    	
//	    	MagickImage  Animation 	= new MagickImage(images);
//	    	Animation.setDelay(image.getDelay());
//	    	Animation.setDispose(image.getDispose());
//	    	Animation.setIterations(image.getIterations());
//	    	
//	    	
////	    	DrawInfo aInfo = new DrawInfo(bidon);
////	    	aInfo.setFill(PixelPacket.queryColorDatabase("white"));    
////            aInfo.setUnderColor(new PixelPacket(0,0,0,100));    
////            aInfo.setPointsize(12);    
////            aInfo.setTextAntialias(true);    
////            aInfo.setOpacity(0);    
////            aInfo.setText("銆€smarter銆€");
////            aInfo.setGeometry("+10+10");    
////            //scaled.annotateImage(aInfo);
////            Animation.annotateImage(aInfo);
//            
//	    	
//	    	StringBuilder sbTmpFileName = new StringBuilder(100);
//			
//	    	sbTmpFileName.append(TMP_DIR);
//			sbTmpFileName.append(SecurityUtils.randomString(30));
//			sbTmpFileName.append(".tmp");
//			
//			
//			
//	    	Animation.setFileName(sbTmpFileName.toString());
//	    	Animation.writeImage(bidon);
//	    	Animation.destroyImages();
//	    	
//	    	File fiTMP = new File(sbTmpFileName.toString());
//	    	if(fiTMP.exists()){
//	    		if(fiTMP.isFile()){
//	    			FileInputStream fis = new FileInputStream(fiTMP);
//	    			
//	    			byte[] buffer = new byte[(int)fiTMP.length()];  
//	                fis.read(buffer);  
//	                  
//	                fis.close(); 
//	                
//	                isReturn = new ByteArrayInputStream(buffer);
//	                
////	    			if(fiTMP.delete())
////	    				System.out.println("delete tmp file success :" );
////	    			else
////	    				System.out.println("delete tmp file fail :");
//	    		}
//	    	}
//	    }
//	    
//	    return isReturn;
//	}
//	
//	public byte[] zoomGifByGif4j(File srcImg, int width, int height, boolean smooth, String markText) throws IOException
//	{
//		GifImage gifImage = GifDecoder.decode(srcImg);
//		
//		
//		GifImage resizeIMG = GifTransformer.resize(gifImage, width, height,	smooth);
//		
////		int oldheight 	= gifImage.getScreenHeight();  
////		int oldwidth 	= gifImage.getScreenWidth();  
////
////		int Width, Height, newWidth, newHeight;
////    	
////    	float scale;
////    	if(oldwidth < width && oldheight < height){
////  //  		 System.out.println("imageDim.width : " + imageDim.width);
////   // 		 System.out.println("imageDim.height : " + imageDim.height);
////    		 
////			if((float)width / (float)oldwidth  > (float)height / (float)oldheight){
////				newHeight 	= height;
////				newWidth 	= Math.round(((float)oldwidth * (float)newHeight) / (float)oldheight);
////				
////				scale = (float)newHeight / (float)oldheight;
////			}else{
////				newWidth  = width;
////				newHeight = Math.round(((float)oldheight * (float)newWidth) / (float)oldwidth);
////				
////				scale = (float)newWidth / (float)oldwidth;
////			}
////		}else{
////			float floOldRate = (float)oldwidth / (float)oldheight;
////			float floNewRate = (float)width / (float)height;
////			
////		//	System.out.println("floOldRate : " + floOldRate);
////   		// 	System.out.println("floNewRate : " + floNewRate);
////   		 
////			if(floOldRate > floNewRate){
////				newWidth  = width;
////				newHeight = Math.round(((float)oldheight * (float)newWidth) / (float)oldwidth);
////				
////				scale = (float)newWidth / (float)oldwidth;
////			}else{
////				newHeight 	= height;
////				newWidth 	= Math.round(((float)oldwidth * (float)newHeight) / (float)oldheight);
////				
////				scale = (float)newHeight / (float)oldheight;
////			}
////		}
////		
////    	Width 	= Math.round((float)oldwidth * scale);
////    	Height 	= Math.round((float)oldheight * scale);
////    	
////    	System.out.println("=================(scale======= " + scale);
////		System.out.println("=================(float)width======= " + (float)Width);
////		System.out.println("=================(float)height======= " + (float)Height);
////		GifImage resizeIMG = GifTransformer.scale(gifImage, (float)Width, (float)Height, true);//double type
//		ByteArrayOutputStream out = new ByteArrayOutputStream(); 
//		
//		GifEncoder.encode(resizeIMG, out);
//
//		return out.toByteArray();
//	}
//	
//	public byte[] zoomScaleGifByGif4j(File srcImg, int width, int height, boolean smooth, String markText) throws IOException, NoSuchAlgorithmException
//	{
//		GifImage gifImage = GifDecoder.decode(srcImg);
//		
//		int oldheight 	= gifImage.getScreenHeight();  
//		int oldwidth 	= gifImage.getScreenWidth();  
//
//		int Width, Height, newWidth, newHeight;
//    	
//    	float scale;
//    	if(oldwidth < width && oldheight < height){
//			if((float)width / (float)oldwidth  > (float)height / (float)oldheight){
//				newHeight 	= height;
//				newWidth 	= Math.round(((float)oldwidth * (float)newHeight) / (float)oldheight);
//				
//				scale = (float)newHeight / (float)oldheight;
//			}else{
//				newWidth  = width;
//				newHeight = Math.round(((float)oldheight * (float)newWidth) / (float)oldwidth);
//				
//				scale = (float)newWidth / (float)oldwidth;
//			}
//		}else{
//			float floOldRate = (float)oldwidth / (float)oldheight;
//			float floNewRate = (float)width / (float)height;
//			
//		//	System.out.println("floOldRate : " + floOldRate);
//   		// 	System.out.println("floNewRate : " + floNewRate);
//   		 
//			if(floOldRate > floNewRate){
//				newWidth  = width;
//				newHeight = Math.round(((float)oldheight * (float)newWidth) / (float)oldwidth);
//				
//				scale = (float)newWidth / (float)oldwidth;
//			}else{
//				newHeight 	= height;
//				newWidth 	= Math.round(((float)oldwidth * (float)newHeight) / (float)oldheight);
//				
//				scale = (float)newHeight / (float)oldheight;
//			}
//		}
//		
//    	Width 	= Math.round((float)oldwidth * scale);
//    	Height 	= Math.round((float)oldheight * scale);
//    	
//    	System.out.println("=================(scale======= " + scale);
//		System.out.println("=================(float)width======= " + (float)Width);
//		System.out.println("=================(float)height======= " + (float)Height);
////		GifImage resizeIMG = GifTransformer.scale(gifImage, (float)Width, (float)Height, true);//double type
//		
//		GifImage resizeIMG = GifTransformer.resize(gifImage, Width, Height,	smooth);
//
//		ByteArrayOutputStream out = new ByteArrayOutputStream(); 
//		
//		GifEncoder.encode(resizeIMG, out);
//		
//		byte[] btReturn = out.toByteArray();
//		
//		fileMD5 = SecurityUtils.getMD5(btReturn);
//		
//		return btReturn;
//	}
//	
//	public byte[] zoomGifByGif4j2(File srcImg, int width, int height, boolean smooth, String markText) throws IOException
//	{
//		BufferedImage img = ImageIO.read(srcImg);
//		int oldheight 	= img.getHeight();  
//		int oldwidth 	= img.getWidth();  
//
//		int Width, Height, newWidth, newHeight;
//    	
//    	float scale;
//    	if(oldwidth < width && oldheight < height){
//  //  		 System.out.println("imageDim.width : " + imageDim.width);
//   // 		 System.out.println("imageDim.height : " + imageDim.height);
//    		 
//			if((float)width / (float)oldwidth  > (float)height / (float)oldheight){
//				newHeight 	= height;
//				newWidth 	= Math.round(((float)oldwidth * (float)newHeight) / (float)oldheight);
//				
//				scale = (float)newHeight / (float)oldheight;
//			}else{
//				newWidth  = width;
//				newHeight = Math.round(((float)oldheight * (float)newWidth) / (float)oldwidth);
//				
//				scale = (float)newWidth / (float)oldwidth;
//			}
//		}else{
//			float floOldRate = (float)oldwidth / (float)oldheight;
//			float floNewRate = (float)width / (float)height;
//			
//		//	System.out.println("floOldRate : " + floOldRate);
//   		// 	System.out.println("floNewRate : " + floNewRate);
//   		 
//			if(floOldRate > floNewRate){
//				newWidth  = width;
//				newHeight = Math.round(((float)oldheight * (float)newWidth) / (float)oldwidth);
//				
//				scale = (float)newWidth / (float)oldwidth;
//			}else{
//				newHeight 	= height;
//				newWidth 	= Math.round(((float)oldwidth * (float)newHeight) / (float)oldheight);
//				
//				scale = (float)newHeight / (float)oldheight;
//			}
//		}
//		
//    	Width 	= Math.round((float)oldwidth * scale);
//    	Height 	= Math.round((float)oldheight * scale);
//    	
//		ByteArrayOutputStream out = new ByteArrayOutputStream();  
//		BufferedImage dest = new BufferedImage(Width, Height, BufferedImage.TYPE_4BYTE_ABGR);  
//		dest.getGraphics().drawImage(img,0,0,Width, Height, null);  
//		GifEncoder.encode(dest, out);  
//		 
//		
////		System.out.println("99999999999999999999999999999999");
//		return out.toByteArray();
//	}
//	
//	public byte[] zoomGif(MagickImage image, int w, int h, String markText) throws MagickException, IOException, NoSuchAlgorithmException
//	{
//		byte[] btReturn = null;
//		
//	    if(image.isAnimatedImage()){
//	    	int Width, Height, newWidth, newHeight;
//	    	
//	    	Dimension imageDim = image.getDimension();
//	    	
//	    	float scale;
//	    	if(imageDim.width < w && imageDim.height < h){
//				if((float)w / (float)imageDim.width  > (float)h / (float)imageDim.height){
//					newHeight = h;
//					newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//					
//					scale = (float)newHeight / (float)imageDim.height;
//				}else{
//					newWidth  = w;
//					newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//					
//					scale = (float)newWidth / (float)imageDim.width;
//				}
//			}else{
//				float floOldRate = (float)imageDim.width / (float)imageDim.height;
//				float floNewRate = (float)w / (float)h;
//				
//				if(floOldRate > floNewRate){
//					newWidth  = w;
//					newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//					
//					scale = (float)newWidth / (float)imageDim.width;
//				}else{
//					newHeight = h;
//					newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//					
//					scale = (float)newHeight / (float)imageDim.height;
//				}
//			}
//	    	ImageInfo bidon 		= new ImageInfo();
//	    	MagickImage[] mi 		= image.breakFrames();
//	    	MagickImage images[] 	= new MagickImage[mi.length];
//	    	for ( int I = 0; I < mi.length ; I++ ){
//	    		imageDim = mi[I].getDimension();
//	    		
//	    		Width = Math.round((float)imageDim.width * scale);
//		    	Height = Math.round((float)imageDim.height * scale);
//	    		
//	    		images[I] = mi[I].scaleImage(Width, Height);
//	    		
//	    		if(markText != null && markText.length() > 0)
//	    			markText(images[I], bidon, markText);
//	    	}
//	    	
//	    	MagickImage  Animation 	= new MagickImage(images);
//	    	Animation.setDelay(image.getDelay());
//	    	Animation.setDispose(image.getDispose());
//	    	Animation.setIterations(image.getIterations());
//	    	
//	    	
//	    	StringBuilder sbTmpFileName = new StringBuilder(100);
//			
//	    	sbTmpFileName.append(TMP_DIR);
//			sbTmpFileName.append(SecurityUtils.randomString(30));
//			sbTmpFileName.append(".tmp");
//			
//	    	Animation.setFileName(sbTmpFileName.toString());
//	    	Animation.writeImage(bidon);
//	    	
//	    	Animation.destroyImages();
//	    	image.destroyImages();
//	    	for ( int i = 0; i < images.length ; i++ ){
//	    		images[i].destroyImages();
//	    		mi[i].destroyImages();
//	    	}
//
//	    	File fiTMP = new File(sbTmpFileName.toString());
//	    	if(fiTMP.exists()){
//	    		if(fiTMP.isFile()){
//	    			FileInputStream fis = new FileInputStream(fiTMP);
//	    			
//	    			byte[] buffer = new byte[(int)fiTMP.length()];  
//	                fis.read(buffer);  
//	                  
//	                fis.close(); 
//	                
//	                btReturn = buffer;
//	                
//	                fileMD5 = SecurityUtils.getMD5(btReturn);
//	                
//	    			if(fiTMP.delete())
//	    				System.out.println("delete tmp file success :" );
//	    			else
//	    				System.out.println("delete tmp file fail :");
//	    		}
//	    	}
//	    }
//	    
//	    return btReturn;
//	}
//	
//	
//	public InputStream zoomJPG2(MagickImage image, int w, int h, String markText) throws MagickException, FileNotFoundException
//	{
//		int Width, Height, newWidth, newHeight;
//    	
//    	Dimension imageDim = image.getDimension();
// 
//    	float scale;
//    	if(imageDim.width < w && imageDim.height < h){
//  //  		 System.out.println("imageDim.width : " + imageDim.width);
//   // 		 System.out.println("imageDim.height : " + imageDim.height);
//    		 
//			if((float)w / (float)imageDim.width  > (float)h / (float)imageDim.height){
//				newHeight = h;
//				newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//				
//				scale = (float)newHeight / (float)imageDim.height;
//			}else{
//				newWidth  = w;
//				newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//				
//				scale = (float)newWidth / (float)imageDim.width;
//			}
//		}else{
//			float floOldRate = (float)imageDim.width / (float)imageDim.height;
//			float floNewRate = (float)w / (float)h;
//			
//		//	System.out.println("floOldRate : " + floOldRate);
//   		// 	System.out.println("floNewRate : " + floNewRate);
//   		 
//			if(floOldRate > floNewRate){
//				newWidth  = w;
//				newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//				
//				scale = (float)newWidth / (float)imageDim.width;
//			}else{
//				newHeight = h;
//				newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//				
//				scale = (float)newHeight / (float)imageDim.height;
//			}
//		}
//    	
//     	int borderWidth;
//    	int borderHeight;
//
//    	MagickImage[] mi = image.breakFrames();
//    	MagickImage images[] = new MagickImage[mi.length];
//    	for ( int I=0; I < mi.length ; I++ )
//    	{
//    		imageDim = mi[I].getDimension();
//    		
//    		Width = Math.round((float)imageDim.width * scale);
//	    	Height = Math.round((float)imageDim.height * scale);
//    		
//    		images[I] = mi[I].scaleImage(Width, Height);
//    		
//    		borderWidth = 0;
//	    	borderHeight= 0;
//	    	
//	    	borderWidth  += Math.floor((float)(w - Width) / 2);
//			borderHeight += Math.floor((float)(h - Height) / 2);
//			
//			if(borderWidth > 0 || borderHeight > 0){
//				images[I].setBorderColor(PixelPacket.queryColorDatabase("white"));
//    			images[I] = images[I].borderImage(new Rectangle(0, 0, borderWidth, borderHeight));
//    			
//    			if(w != (borderWidth + Width) || h != (borderHeight + Height))
//    				images[I] = images[I].scaleImage(w, h);
//			}
//    	}
//    	
//    	MagickImage  Animation 	= new MagickImage(images);
//    	
//    	Animation.setDelay(image.getDelay());
//    	Animation.setDispose(image.getDispose());
//    	Animation.setIterations(image.getIterations());
//	    
//    	ImageInfo bidon			= new ImageInfo();
//    	
//    	if(markText != null && markText.length() > 0)
//    		markText(Animation, bidon, markText);
//      	
//    	InputStream isReturn 	= new ByteArrayInputStream(Animation.imageToBlob(bidon));
//    	Animation.destroyImages();
//    	
//	    return isReturn;
//	}
//	
//	public synchronized byte[] zoomJPG(MagickImage image, int w, int h, String markText) throws MagickException, FileNotFoundException, NoSuchAlgorithmException
//	{
//		int Width, Height, newWidth, newHeight;
//    	
//    	Dimension imageDim = image.getDimension();
// 
//    	float scale;
//    	if(imageDim.width < w && imageDim.height < h){
// 			if((float)w / (float)imageDim.width  > (float)h / (float)imageDim.height){
//				newHeight = h;
//				newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//				
//				scale = (float)newHeight / (float)imageDim.height;
//			}else{
//				newWidth  = w;
//				newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//				
//				scale = (float)newWidth / (float)imageDim.width;
//			}
//		}else{
//			float floOldRate = (float)imageDim.width / (float)imageDim.height;
//			float floNewRate = (float)w / (float)h;
//			
//			if(floOldRate > floNewRate){
//				newWidth  = w;
//				newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
//				
//				scale = (float)newWidth / (float)imageDim.width;
//			}else{
//				newHeight = h;
//				newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
//				
//				scale = (float)newHeight / (float)imageDim.height;
//			}
//		}
//    	
//     	int borderWidth;
//    	int borderHeight;
//
//		Width 	= Math.round((float)imageDim.width * scale);
//    	Height 	= Math.round((float)imageDim.height * scale);
//		
//    	MagickImage imageNew = image.scaleImage(Width, Height);
//		
//		borderWidth = 0;
//    	borderHeight= 0;
//    	
//    	borderWidth  += Math.floor((float)(w - Width) / 2);
//		borderHeight += Math.floor((float)(h - Height) / 2);
//		
//		if(borderWidth > 0 || borderHeight > 0){
//			imageNew.setBorderColor(PixelPacket.queryColorDatabase("white"));
//			imageNew = imageNew.borderImage(new Rectangle(0, 0, borderWidth, borderHeight));
//			
//			if(w != (borderWidth + Width) || h != (borderHeight + Height)){
//				imageNew = imageNew.scaleImage(w, h);
//			}
//		}
//    	
//    	imageNew.setDelay(image.getDelay());
//    	imageNew.setDispose(image.getDispose());
//    	imageNew.setIterations(image.getIterations());
//	    
//    	
//    	ImageInfo bidon	= new ImageInfo();
//    	
//    	if(markText != null && markText.length() > 0)
//    		markText(imageNew, bidon, markText);
//      	
//    	byte[] btReturn = imageNew.imageToBlob(bidon);
//    	
//    	imageNew.destroyImages();
//    	image.destroyImages();
//
//    	fileMD5 = SecurityUtils.getMD5(btReturn);
//    	
//	    return btReturn;
//	}
//	
//	public void markText(MagickImage  Animation, ImageInfo bidon, String text) throws MagickException
//	{
//	    if(text == null || text.length() == 0)
//	    	return;
//		
//		Dimension imageDim = Animation.getDimension();    
//        int width 	= imageDim.width;    
//        int height 	= imageDim.height;    
//
//        int a = 0;    
//        int b = 0; 
//       
//        String[] as = text.split("");    
//        for (String string : as) {    
//             if(string.matches("[\u4E00-\u9FA5]")){    
//                  a++;    
//              }    
//             if(string.matches("[a-zA-Z0-9]")){    
//                  b++;    
//              }    
//        }
//        
//        int fontSize 	= Math.round((float)width * 0.0614F);
//        
//        if(((float)fontSize / (float)height) > 0.2F)
//        	fontSize = 9;
//        
//        int fontWidth 	= Math.round(a * 12 + b * (float)fontSize * 0.725F);
//         if(fontSize < 1)
//        	fontSize = 9;
//        
//        if(width > fontWidth && height > 5){
//        	
//        	DrawInfo aInfo = new DrawInfo(bidon);
//        	
//        	aInfo.setFill(PixelPacket.queryColorDatabase("white"));    
//            aInfo.setUnderColor(new PixelPacket(0,0,50,100));    
//            aInfo.setPointsize(fontSize);    
//            aInfo.setTextAntialias(true);    
//            aInfo.setOpacity(0);
//            
//            aInfo.setText(text);
//            //aInfo.setGeometry("+50+50"); 
//           
//            int fontPosX = Math.round((float)width / 2 - ((float)fontWidth / 2));
//            int fontPosY = Math.round((float)height / 2 - ((float)fontSize / 2));
//            
//            aInfo.setGeometry("+" + fontPosX + "+" + fontPosY);
//            Animation.annotateImage(aInfo);
//        }
//	}
//	
//	
//	public ByteArrayInputStream  getCodeImage() 
//	{   
//        //create image in memory
//        int width = 60, height = 20;   
//        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);   
//
//        Graphics g 		= image.getGraphics();   
//        Random random 	= new Random();   
// 
//        g.setColor(getRandColor(200,250));   
//        g.fillRect(0, 0, width, height);   
//
//        g.setFont(new Font("Times New Roman", Font.PLAIN, 18));   
// 
//        g.setColor(getRandColor(160,200));   
//        for (int i = 0;i < 155; i++){   
//        	int x 	= random.nextInt(width);   
//         	int y 	= random.nextInt(height);   
//         	int xl 	= random.nextInt(12);   
//        	int yl 	= random.nextInt(12);   
//        	g.drawLine(x, y, x + xl, y + yl);   
//        }
//        
//        this.checkNumber = "";
//        String rand;
//        
//        for (int i = 0; i < 4 ; i++){   
//            rand = String.valueOf(random.nextInt(10));   
//            checkNumber += rand;   
//            g.setColor(new Color(20+random.nextInt(110),20 + random.nextInt(110),20 + random.nextInt(110)));   
//            g.drawString(rand, 13 * i + 6, 16);    
//        }
//        
//        g.dispose();   
//        ByteArrayInputStream input 		= null;   
//        ByteArrayOutputStream output 	= new ByteArrayOutputStream();   
//        try{   
//            ImageOutputStream imageOut 	= ImageIO.createImageOutputStream(output);   
//            ImageIO.write(image, "JPEG", imageOut);   
//            imageOut.close();   
//            input = new ByteArrayInputStream(output.toByteArray());   
//        }catch(Exception e){   
//            System.out.println("create check code image error 锛?+e.toString());   
//        }   
//           
//        return input; 
//    }
//	
//	public ByteArrayInputStream  getCodeImage(String checkCode, int length) 
//	{   
//        if(checkCode.length() < length)
//        	return null;
//        
//		//create image in memory
//        int width = 60, height = 20;   
//        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);   
//
//        Graphics g 		= image.getGraphics();   
//        Random random 	= new Random();   
// 
//        g.setColor(getRandColor(200,250));   
//        g.fillRect(0, 0, width, height);   
//
//        g.setFont(new Font("Times New Roman", Font.PLAIN, 18));   
// 
//        g.setColor(getRandColor(160,200));   
//        for (int i = 0;i < 155; i++){   
//        	int x 	= random.nextInt(width);   
//         	int y 	= random.nextInt(height);   
//         	int xl 	= random.nextInt(12);   
//        	int yl 	= random.nextInt(12);   
//        	g.drawLine(x, y, x + xl, y + yl);   
//        }   
//        
//        this.checkNumber = "";
//        //String rand;
//        char ch;
//        
//        for (int i = 0; i < 4 ; i++){   
//            //rand = String.valueOf(random.nextInt(10));  
//        	ch = checkCode.charAt(i);
//            checkNumber += ch;   
//            g.setColor(new Color(20+random.nextInt(110),20 + random.nextInt(110),20 + random.nextInt(110)));   
//            g.drawString(Character.toString(ch), 13 * i + 6, 16);    
//        }
//        
//        g.dispose();   
//        ByteArrayInputStream input 		= null;   
//        ByteArrayOutputStream output 	= new ByteArrayOutputStream();   
//        try{   
//            ImageOutputStream imageOut 	= ImageIO.createImageOutputStream(output);   
//            ImageIO.write(image, "JPEG", imageOut);   
//            imageOut.close();   
//            input = new ByteArrayInputStream(output.toByteArray());   
//        }catch(Exception e){   
//            System.out.println("create check code image error 锛?+e.toString());   
//        }   
//           
//        return input; 
//    }
//	
//    /* 
//     * get random color.
//     */ 
//    public Color getRandColor(int fc,int bc)
//    {   
//        Random random = new Random();   
//        if(fc>255) fc=255;   
//        if(bc>255) bc=255;   
//        int r=fc+random.nextInt(bc-fc);   
//        int g=fc+random.nextInt(bc-fc);   
//        int b=fc+random.nextInt(bc-fc);
//        
//        return new Color(r,g,b);   
//   }
//	
////	public void zoom(String imgPath, String toPath, int w, int h) throws MagickException
////	{
////		ImageInfo info = new ImageInfo(imgPath);
////	    MagickImage image = new MagickImage(info);
////	    if(image.isAnimatedImage()){
////	    	System.out.println("is gif getIterations :" + image.getIterations());
////	    	System.out.println("is gif getDelay :" + image.getDelay());
////	    	System.out.println("is gif getDispose :" + image.getDispose());
////	    	
////	    	int Width, Height, newWidth, newHeight;
////	    	
////	    	Dimension imageDim = image.getDimension();
////	    	
////	    	System.out.println("w1 =" + imageDim.width);
////	    	System.out.println("h1 =" + imageDim.height);
////	    	
////	    	float scale;
////	    	if(imageDim.width < w && imageDim.height < h){
////				if((float)w / (float)imageDim.width  > (float)h / (float)imageDim.height){
////					newHeight = h;
////					newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
////					
////					scale = (float)newHeight / (float)imageDim.height;
////				}else{
////					newWidth  = w;
////					newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
////					
////					scale = (float)newWidth / (float)imageDim.width;
////				}
////			}else{
////				float floOldRate = imageDim.width / imageDim.height;
////				float floNewRate = w / h;
////				if(floOldRate > floNewRate){
////					newWidth  = w;
////					newHeight = Math.round(((float)imageDim.height * (float)newWidth) / (float)imageDim.width);
////					
////					scale = (float)newWidth / (float)imageDim.width;
////				}else{
////					newHeight = h;
////					newWidth = Math.round(((float)imageDim.width * (float)newHeight) / (float)imageDim.height);
////					
////					scale = (float)newHeight / (float)imageDim.height;
////				}
////			}
////	    	
////	    	System.out.println("scale =" + scale);
////	    	System.out.println("w =" + imageDim.width);
////	    	System.out.println("h =" + imageDim.height);
////    		
////	    	
////	    	MagickImage[] mi = image.breakFrames();
////	    	MagickImage images[] = new MagickImage[mi.length];
////	    	for ( int I=0; I < mi.length ; I++ )
////	    	{
////	    		imageDim = mi[I].getDimension();
////	    		
////	    		Width = Math.round((float)imageDim.width * scale);
////		    	Height = Math.round((float)imageDim.height * scale);
////	    		
////	    		images[I] = mi[I].scaleImage(Width, Height);
////	    	}
////	    	
////	    	MagickImage  Animation = new MagickImage(images);
////	    	ImageInfo bidon = new ImageInfo();
////	    	Animation.setImageAttribute( "Dispose","1" );
////	    	Animation.setImageAttribute( "Delay","5" );
////	    	Animation.setIterations(0);
////	    	Animation.setFileName(toPath);
////	    	Animation.writeImage(bidon);
////	    }
////	}
//	
//    /** 
//      * 鍘嬬缉鍥剧墖 
//      * @param filePath 婧愭枃浠惰矾寰?
//      * @param toPath    缂╃暐鍥捐矾寰?
//      */    
//    public static void createThumbnail(String filePath, String toPath) throws MagickException{    
//         ImageInfo info = null;    
//         MagickImage image = null;    
//         Dimension imageDim = null;    
//         MagickImage scaled = null;    
//        try{    
//             info = new ImageInfo(filePath);    
//             image = new MagickImage(info);    
//             imageDim = image.getDimension();    
//            int wideth = imageDim.width;    
//            int height = imageDim.height;    
//            if (wideth > height) {    
//                 height = 660 * height / wideth;    
//                 wideth = 660;    
//             }     
//             scaled = image.scaleImage(wideth, height);//灏忓浘鐗囨枃浠剁殑澶у皬.   
//             scaled.setFileName(toPath);    
//             scaled.writeImage(info);    
//         }finally{    
//            if(scaled != null){    
//                 scaled.destroyImages();    
//             }    
//         }      
//     }    
//        
//    /** 
//      * 姘村嵃(鍥剧墖logo) 
//      * @param filePath   婧愭枃浠惰矾寰?
//      * @param toImg      淇敼鍥捐矾寰?
//      * @param logoPath   logo鍥捐矾寰?
//      * @throws MagickException 
//      */    
//    public static void initLogoImg(String filePath, String toImg, String logoPath) throws MagickException {    
//         ImageInfo info = new ImageInfo();    
//         MagickImage fImage = null;    
//         MagickImage sImage = null;    
//         MagickImage fLogo = null;    
//         MagickImage sLogo = null;    
//         Dimension imageDim = null;    
//         Dimension logoDim = null;    
//        try {    
//             fImage = new MagickImage(new ImageInfo(filePath));    
//             imageDim = fImage.getDimension();    
//            int width = imageDim.width;    
//            int height = imageDim.height;    
//            if (width > 660) {    
//                 height = 660 * height / width;    
//                 width = 660;    
//             }    
//             sImage = fImage.scaleImage(width, height);    
//                
//             fLogo = new MagickImage(new ImageInfo(logoPath));    
//             logoDim = fLogo.getDimension();    
//            int lw = width / 8;    
//            int lh = logoDim.height * lw / logoDim.width;    
//             sLogo = fLogo.scaleImage(lw, lh);    
//    
//             sImage.compositeImage(CompositeOperator.AtopCompositeOp, sLogo,   width-(lw + lh/10), height-(lh + lh/10));    
//             sImage.setFileName(toImg);    
//             sImage.writeImage(info);    
//         } finally {
//            if(sImage != null){    
//                 sImage.destroyImages();    
//             }    
//         }    
//     }   
//
///** 
//     * 鍒囧浘 
//     * @param imgPath 婧愬浘璺緞 
//     * @param toPath   淇敼鍥捐矾寰?
//     * @param w    瀹藉害     
//     * @param h    楂樺害 
//     * @param x         
//     * @param y 
//     * @throws MagickException 
//     */    
//   public static void cutImg(String imgPath, String toPath, int w, int h, int x, int y) throws MagickException {    
//        ImageInfo infoS = null;    
//        MagickImage image = null;    
//        MagickImage cropped = null;    
//        Rectangle rect = null;    
//       try {    
//            infoS = new ImageInfo(imgPath);    
//            image = new MagickImage(infoS);    
//            rect = new Rectangle(x, y, w, h);    
//            cropped = image.cropImage(rect);    
//            cropped.setFileName(toPath);    
//            cropped.writeImage(infoS);    
//               
//        } finally {    
//           if (cropped != null) {    
//                cropped.destroyImages();    
//            }    
//        }    
//    }
//   
//   /**
//    * 鍥剧墖缂╂斁
//    * @param imgPath 鍘熷浘鐗囪矾寰?    * @param toPath 缂╂斁鍚庣殑鍥剧墖璺緞
//    * @param w   缂╂斁鍚庡浘鐗囧搴?    * @param h   缂╂斁鍚庡浘鐗囬珮搴?    */
//   
//   public static void zoomImg(String imgPath, String toPath, int w, int h) throws Exception{
//    ImageInfo info = new ImageInfo(imgPath);
//    MagickImage image = new MagickImage(info);
//    MagickImage scaleImg = image.scaleImage(w, h);
//    scaleImg.setFileName(toPath);
//    scaleImg.writeImage(info);
//   }
//   
//   /**
//    * 鍥剧墖缂╂斁
//    * @param imgPath 鍘熷浘鐗囪矾寰?    * @param toPath 缂╂斁鍚庣殑鍥剧墖璺緞
//    * @param w   缂╂斁鍚庡浘鐗囧搴?    * @param h   缂╂斁鍚庡浘鐗囬珮搴?    */
//   
//   public static void zoomImg1(String imgPath, String toPath, int w, int h) throws Exception{
//    ImageInfo info = new ImageInfo(imgPath);
//    MagickImage image = new MagickImage(info);
//    if(image.isAnimatedImage()){
//    	System.out.println("is gif");
//    	//MagickImage scaleImg;
//    	
//    	MagickImage[] mi = image.breakFrames();
//    	MagickImage[] out = new MagickImage[mi.length];
//    	for(int i = 0; i < mi.length; i++){
//    		out[i] = mi[i].scaleImage(w, h);
//    		
//    		System.out.println("i = " + i);
//    		//out[i].setImageAttribute( "Dispose","1" );
//    		//out[i].setImageAttribute( "Delay","500" );
//    	}
//    	
//    	ImageInfo bidon = new ImageInfo();
//    	MagickImage scaleImg = new MagickImage(out);
//    	//scaleImg.setImageFormat("gif");
//    	scaleImg.setDelay(8);
//    	scaleImg.setDispose(2);
//    	scaleImg.setIterations(0);
//    	
//    	scaleImg.setFileName(toPath);
//    	scaleImg.writeImage(bidon);
//    }
//    
//    //MagickImage scaleImg = image.scaleImage(w, h);
//    //scaleImg.setFileName(toPath);
//    //scaleImg.writeImage(info);
//   }
//   
//   public static void zoomImg2(String imgPath, String toPath, int w, int h) throws Exception
//   {
//	    ImageInfo info = new ImageInfo(imgPath);
//	    MagickImage image = new MagickImage(info);
//	    
//	    if(image.isAnimatedImage()){
//	    	System.out.println("is gif getIterations :" + image.getIterations());
//	    	System.out.println("is gif getDelay :" + image.getDelay());
//	    	System.out.println("is gif getDispose :" + image.getDispose());
//	    	//MagickImage scaleImg;
////	    	int scaleLimit = 15;
//	    	int newWidth, newHeight;
//	    	Dimension imageDim = image.getDimension();
//	    	
//	    	System.out.println("w1 =" + imageDim.width);
//	    	System.out.println("h1 =" + imageDim.height);
//	    	
//	    	float scale;
//	    	if(imageDim.width < w && imageDim.height < h){
//				if(w / imageDim.width  > h / imageDim.height){
//					newHeight = h;
//					newWidth = (imageDim.width * newHeight) / imageDim.height;
//					
//					scale = (float)newHeight / (float)imageDim.height;
//				}else{
//					newWidth  = w;
//					newHeight = (imageDim.height * newWidth) / imageDim.width;
//					
//					scale = (float)newWidth / (float)imageDim.width;
//				}
//			}else{
//				float floOldRate = imageDim.width / imageDim.height;
//				float floNewRate = w / h;
//				if(floOldRate > floNewRate){
//					newWidth  = w;
//					newHeight = (imageDim.height * newWidth) / imageDim.width;
//					
//					scale = (float)newWidth / (float)imageDim.width;
//				}else{
//					newHeight = h;
//					newWidth = (imageDim.width * newHeight) / imageDim.height;
//					
//					scale = (float)newHeight / (float)imageDim.height;
//				}
//			}
//	    	
//	    	System.out.println("scale =" + scale);
//	    	
//	    	int Width, Height;
//	    	
//	    	MagickImage[] mi = image.breakFrames();
//	    	MagickImage[] out = new MagickImage[mi.length];
//	    	for(int i = 0; i < mi.length; i++){
//	    		imageDim = mi[i].getDimension();
//	    		//imageWidth = mi[i].getImageAttribute("width");
//	    		System.out.println("w =" + imageDim.width);
//		    	System.out.println("h =" + imageDim.height);
//	    		
//		    	Width = Math.round((float)imageDim.width * scale);
//		    	Height = Math.round((float)imageDim.height * scale);
//	    		
//		    	System.out.println("Width =" + Width);
//		    	System.out.println("Height =" + Height);
//		    	
//		    	
//	    		out[i] = mi[i].scaleImage(Width, Height);
//	    		
//	    		out[i].setDelay(mi[i].getDelay());
//	    		out[i].setDispose(mi[i].getDispose());
//	    		System.out.println("i = " + i);
//	    		//out[i].setImageAttribute( "Dispose","1" );
//	    		//out[i].setImageAttribute( "Delay","500" );
//	    		
//	    		ImageInfo bidon = new ImageInfo();
//	    		//mi[i].setFileName("D:/workspace/InternalManager/WebContent/tt" + i + ".gif");
//	    		//mi[i].writeImage(bidon);
//	    		
//	    		out[i].setFileName("D:/workspace/InternalManager/WebContent/tttt" + i + ".gif");
//	    		out[i].writeImage(bidon);
//	    	}
//	    	
////	    	ImageInfo bidon = new ImageInfo();
////	    	MagickImage scaleImg = new MagickImage(out);
////	    	scaleImg.setImageFormat("gif");
////	    	scaleImg.setFileName(toPath);
////	    	scaleImg.writeImage(info);
//	    }
//	    
//	    //MagickImage scaleImg = image.scaleImage(w, h);
//	    //scaleImg.setFileName(toPath);
//	    //scaleImg.writeImage(info);
//	   }
//   
//   
//   /** 
//    * 姘村嵃(鏂囧瓧) 
//       * @param filePath 婧愭枃浠惰矾寰?
//    * @param toImg     淇敼鍥捐矾寰?
//    * @param text      鍚嶅瓧(鏂囧瓧鍐呭鑷繁闅忔剰) 
//    * @throws MagickException 
//    */    
//   public static void initTextToImg(String filePath, String toImg,   String text) throws MagickException
//   {    
//           ImageInfo info = new ImageInfo(filePath);    
//          if (filePath.toUpperCase().endsWith("JPG") || filePath.toUpperCase().endsWith("JPEG")) {    
//               info.setCompression(CompressionType.JPEGCompression); //鍘嬬缉绫诲埆涓篔PEG鏍煎紡   
//               info.setPreviewType(PreviewType.JPEGPreview); //棰勮鏍煎紡涓篔PEG鏍煎紡   
//               info.setQuality(95);    
//           }    
//           MagickImage aImage = new MagickImage(info);    
//           Dimension imageDim = aImage.getDimension();    
//          int wideth = imageDim.width;    
//          int height = imageDim.height;    
//          if (wideth > 660) {    
//               height = 660 * height / wideth;    
//               wideth = 660;    
//           }    
//          int a = 0;    
//          int b = 0;    
//           String[] as = text.split("");    
//          for (String string : as) {    
//              if(string.matches("[\u4E00-\u9FA5]")){    
//                   a++;    
//               }    
//              if(string.matches("[a-zA-Z0-9]")){    
//                   b++;    
//               }    
//           }    
//          int tl = a*12 + b*6 + 300;    
//           MagickImage scaled = aImage.scaleImage(wideth, height);    
//          if(wideth > tl && height > 5){    
//               DrawInfo aInfo = new DrawInfo(info);    
//               aInfo.setFill(PixelPacket.queryColorDatabase("white"));    
//               aInfo.setUnderColor(new PixelPacket(0,0,0,100));    
//               aInfo.setPointsize(12);    
//              //瑙ｅ喅涓枃涔辩爜闂,鑷繁鍙互鍘婚殢鎰忓畾涔変釜鑷繁鍠滄瀛椾綋锛屾垜鍦ㄨ繖鐢ㄧ殑寰蒋闆呴粦   
//               String fontPath = "C:/WINDOWS/Fonts/MSYH.TTF";    
////             String fontPath = "/usr/maindata/MSYH.TTF";   
//               aInfo.setFont(fontPath);    
//               aInfo.setTextAntialias(true);    
//               aInfo.setOpacity(0);    
//               aInfo.setText("銆€" + text + "浜庛€€" + new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "涓婁紶浜嶺XXX缃戯紝鐗堟潈褰掍綔鑰呮墍鏈夛紒");
//               aInfo.setGeometry("+" + (wideth-tl) + "+" + (height-5));    
//               scaled.annotateImage(aInfo);    
//           }    
//           scaled.setFileName(toImg);    
//           scaled.writeImage(info);    
//           scaled.destroyImages();    
//   }
//   
//   
}
